package clinicapoo.validator;

import clinicapoo.exceptions.ValidationException;
import clinicapoo.factory.DAO;
import clinicapoo.model.Medico;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author fmontezuma
 */
public class MedicoValidator extends BaseValidator
{
	public void verificarDadosCadastro(Medico m) throws ValidationException
	{
		log.debug(m.toString());

		List<String> erros = new ArrayList<String>();

		if (m.getCpf() == null || m.getCpf().trim().isEmpty())
		{
			erros.add(msg("validator.medico.cpf.deveSerPreenchido"));
		}
		else if (!m.getCpf().matches("^[0-9]{11}$"))
		{
			erros.add(msg("validator.medico.cpf.invalido"));
		}
		else if (erros.isEmpty())
		{
			Medico m2 = DAO.medico.procurarPorCpf(m.getCpf());
			if (m2 != null && (m.getId() == null || !m.getId().equals(m2.getId())))
			{
				erros.add(msg("validator.medico.cpf.jaCadastrado"));
			}
		}

		if (m.getCrm() == null || m.getCrm().trim().isEmpty())
		{
			erros.add(msg("validator.medico.crm.deveSerPreenchido"));
		}

		if (m.getNome() == null || m.getNome().trim().isEmpty())
		{
			erros.add(msg("validator.medico.nome.deveSerPreenchido"));
		}

		if (!erros.isEmpty())
		{
			throw new ValidationException(erros);
		}
	}
}
